共计 1199 个字符,预计需要花费 3 分钟才能阅读完成。
一.CBV 加装饰器
-
可以给类添加装饰器
-
可以在方法上添加装饰器
from django.views import View
from django.utils.decorators import method_decorator
# 第一种写法: 直接加在类上
# 第一个参数是装饰器引用, 第二个参数是被装饰对象的方法
# @method_decorator(auth,name='get')
class MyViews(View):
# 第二种写法: 指名道姓的加在方法上 (不需要指定方法名 name)
@method_decorator(auth)
def get(self, request, *args, **kwargs):
return HttpResponse('触发 get')
def post(self, request, *args, **kwargs):
return HttpResponse('触发 post')
二. 正反向代理简介
1. 什么代理
- 代理其实就是一个中介,A 和 B 本来可以直连,中间插入一个 C,C 就是中介
- 刚开始的时候,代理多数是帮助内网 client 访问外网 server 用的
- 后来出现了反向代理,"反向" 这个词在这儿的意思其实是指方向相反,即代理将来自外网客户端的请求转发到内网服务器,从外到内
三. 正向代理
1. 正向代理原理
- 正向代理类似于一个中转站
- 国内不能直接访问到外网, 我们可以通过一台正向代理服务器 (可以访问外网), 将请求发送到该服务器上, 服务器帮我们去外网拿数据, 再返回给我们, 这样我们就间接的访问了外网资源
2. 正向代理的作用 (运用场景)
- 借助中转访问无法访问的资源, 比如 google
- 可以做缓存, 加速访问资源
- 对客户端进行访问授权, 上网进行认证
- 代理可以记录用户端的访问记录, 对外隐藏用户信息 (上网行为进行管理)
3. 举例
- 买票找黄牛
四. 反向代理
1. 反向代理原理
- 反向代理(Reverse Proxy)实际运行方式是指以代理服务器来接受 internet 上的连接请求
- 然后将请求转发给内部网络上的服务器 (内部可以有好多台),并将从服务器上得到的结果返回给 internet 上请求连接的客户端,此时代理服务器对外就表现为一个服务器
2. 反向代理的作用
-
保证内网的安全,阻止 web 攻击,大型网站,通常将反向代理作为公网访问地址,Web 服务器是内网
-
负载均衡,通过反向代理服务器来优化网站的负载
3. 举例
- 比如我们访问天猫、淘宝等平台, 我们访问的只是一个对外的 ip 地址, 也就是一台服务器, 二他们内部不可能只使用一台服务器来存放用户信息, 内部一定是有许多服务器的, 而我们访问的对外的这台服务器就是作为反向代理服务器来使用的, 将用户的请求转发到内网各个服务器中去
- 再比如我们使用租房软件选择房源, 我们相当于是一个客户端, 租房软件就相当于一个反向代理服务器, 它身后掌握着许多的房源, 但我们面对的只是租房软件 (类似于一对多)
五. 正反向代理总结
- 正向代理,代理的是客戶端
- 反向代理,代理的是服務端
正文完